#ifndef UC_BRCSTRAV_H
#define UC_BRCSTRAV_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrtrav.h"


// forward class declarations
class UcBrComplex;
class UcBrShell;
class UcBrBrepComplexTraverser;


class DllImpExp UcBrComplexShellTraverser : public UcBrTraverser
{
public:
    UCRX_DECLARE_MEMBERS(UcBrComplexShellTraverser);
    UcBrComplexShellTraverser();
    UcBrComplexShellTraverser(const UcBrComplexShellTraverser& src);
    ~UcBrComplexShellTraverser();

    // Assignment operator
    UcBrComplexShellTraverser& operator =(const UcBrComplexShellTraverser& src);

    // Queries & Initialisers
    UcBr::ErrorStatus   setComplexAndShell(const UcBrShell& shell);
    UcBr::ErrorStatus   setComplex      (const UcBrBrepComplexTraverser& 						brepcompshell);
    UcBr::ErrorStatus   setComplex	(const UcBrComplex& complex);
    UcBr::ErrorStatus   getComplex      (UcBrComplex& complex) const;
    UcBr::ErrorStatus   setShell        (const UcBrShell& shell);
    UcBr::ErrorStatus   getShell        (UcBrShell& shell) const;
};


#endif

